import axios from 'axios'

// axios 的实例对象
// axios.get()
// axios.post()
// axios.delete()
// axios.request({
//   method: 'GET'
// })

// axios.get('http://123.207.32.32:8000/home/multidata').then((res) => {
//   console.log(res)
// })

// Promist本身是可以有类型
// new Promise<string>((resolve, reject) => {
//   resolve('abc')
// }).then((res) => {
//   console.log(res.length)
// })

// axios.all  -> 多个请求

axios.defaults.baseURL = 'http://httpbin.org'
axios.defaults.timeout = 10000
// axios
//   .all([
//     axios.get('/get', { params: { name: 'why', age: 18 } }),
//     axios.get('/post', { data: { name: 'why', age: 18 } })
//   ])
//   .then((res) => {
//     console.log(res)
//   })
//   .catch((err) => {
//     console.log(err)
//   })

// 6 axios的拦截器
// fn1: 请求发送成功会执行的函数
// fn2: 请求发送失败会执行的函数
axios.interceptors.request.use(
  (config) => {
    // 想做的一些操作
    // 1 给请求添加token
    // 2 isLoading动画
    console.log(config, '请求成功的拦截')
    return config
  },
  (err) => {
    console.log('请求发送错误')
    return err
  }
)
// 响应的拦截
// fn1 数据响应成功(服务器正常的返回了数据 20x)
axios.interceptors.response.use(
  (res) => {
    console.log('响应成功的拦截')
    // return res.data
    return res
  },
  (err) => {
    console.log(err, '服务器响应失败')
    return err
  }
)
